/**
 * @ClassName TestDynamicBind
 * @Author 小坏
 * @Date 2022/1/24、9:58
 * @Version 1.0
 */
public class TestDynamicBind {

    public static void        main(String[] args) {
        Work work = new Work();
        System.out.println(work.name);
        work.hello();
        work.hi();


        /**
         * 在运行时的时候才去判断当前对象Person 的对象实例到底是什么
         * 1、是Work 就调用work方法 （动态绑定）
         * 2、person.name 不是动态绑定、属性是静态绑定的、在编译期已经绑定死了
         */
        System.out.println("###############多态####################");
        Person person = new Work();
        System.out.println(person.name);
        person.hello();
    }
}


class Person {
    String name = "person";
    public void hello() {
        System.out.println("hello person");
    }


}



class Work extends Person{
    String name = "Work";
    public void hello() {
        System.out.println("hello Work");
    }

    public void hi() {
        System.out.println("hello hi");
    }
}

